package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.Engineer;
import com.shrcl.engineerprocess.domain.TaskNotification;
import com.shrcl.engineerprocess.domain.impl.EngineerProcessTaskExtensionImpl;
import com.shrcl.engineerprocess.domain.proxy.EngineerProcessTaskExtensionProxy;
import edu.fudan.langlab.domain.task.NotifiableTask;
import edu.fudan.langlab.domain.task.ProcessTaskExtension;
import edu.fudan.mylang.pf.EntityImplementation;
import java.util.Date;

@EntityImplementation(implementBy = EngineerProcessTaskExtensionImpl.class)
public interface EngineerProcessTaskExtension extends ProcessTaskExtension, NotifiableTask {
  public abstract TaskNotification getTaskNotification();
  
  public abstract EngineerProcessTaskExtension setTaskNotification(final TaskNotification taskNotification);
  
  public abstract Date getNotifyDate();
  
  public abstract Engineer getEngineer();
  
  public abstract void taskInfoNotify();
  
  public abstract void createTaskNotification();
  
  public abstract EngineerProcessTaskExtensionProxy toProxy();
}
